<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class M_Demandado extends Modelo {

    public $id = null;
    public $matricula;
    public $especialidadId;
    public $causaId;
    public $seguroId;
    public $fecha;
    public $defendido;
    public $subsidiado;
    public $seguroColegio;
    public $importePolizaSeguroColegio;
    public $importePolizaSeguroPersonal;
    public $observacionSubsidio;

    function __construct() {
        parent::__construct();
        $this->tabla = 'demandados';
    }

    function setAttributes($datos = array(), $tipo = 'object') {
        return parent::_setAttributes(__CLASS__, $datos, $tipo);
    }

    function doArray() {
        return parent::_doArray(__CLASS__);
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function getValidacion() {
        return array(
            array('field' => 'fecha', 'label' => 'fecha', 'rules' => 'date|required'),
            array('field' => 'estudioId', 'label' => 'Estudio', 'rules' => 'trim|required'),
            array('field' => 'especialidadId', 'label' => 'Especialidad', 'rules' => 'trim|required'),
            array('field' => 'importePolizaSeguroColegio', 'label' => 'Importe Poliza Seguro Colegio', 'rules' => 'trim|required|money'),
            array('field' => 'importePolizaSeguroPersonal', 'label' => 'Importe Poliza Seguro Personal', 'rules' => 'trim|required|money'),
        );
    }

    /**
     * Devuelve valores por defecto en un arreglo.
     */
    function valoresPorDefecto() {
        return array(
            'matricula' => '',
            'especialidadId' => '',
            'causaId' => '',
            'seguroId' => '0',
            'fecha' => gmdate('d/m/Y'),
            'defendido' => '0',
            'subsidiado' => '0',
            'seguroColegio' => '0',
            'importePolizaSeguroColegio' => '0.0',
            'importePolizaSeguroPersonal' => '0.0',
            'observacionSubsidio' => '',
        );
    }

    /**
     * Devuelve las causas 
     */
    function getListPorCausaId($causaId) {
        $select =
                $this->tabla . '.id,
                ' . $this->tabla . '.subsidiado,
                ' . $this->tabla . '.defendido,
                ' . $this->tabla . '.seguroColegio,
                medicos.matricula,
                medicos.nombre,
                ssap_especialidades.descripcion as especialidad,
                seguros.nombre seguronombre,
                seguros.empresa seguroempresa,
                demandados_x_estudios.id dxeid,
                estudios.nombre estudio,
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('medicos', 'medicos.matricula = ' . $this->tabla . '.matricula');
        $this->db->join('especialidades', 'especialidades.id = ' . $this->tabla . '.especialidadId');
        $this->db->join('seguros', 'seguros.id = ' . $this->tabla . '.seguroId', 'left');
        $this->db->join('demandados_x_estudios', 'demandados_x_estudios.demandadoId = ' . $this->tabla . '.id', 'left');
        $this->db->join('estudios', 'estudios.id = demandados_x_estudios.estudioId');
        $this->db->where('causaId', $causaId);
        $this->db->where('demandados_x_estudios.estado', '1');

        $results = $this->db->get();

        return $results->result_object();
    }

    /**
     * Devuelve las causas 
     */
    function getMedicoPorDemandadoId($demandadoId) {
        $select =
                $this->tabla . '.id,
                medicos.matricula,
                medicos.nombre,
                demandados.causaId causaId
                ';
        $this->db->select($select);
        $this->db->from($this->tabla);
        $this->db->join('medicos', 'medicos.matricula = ' . $this->tabla . '.matricula');
        $this->db->where($this->tabla . '.id', $demandadoId);

        $results = $this->db->get();
        $results = $results->result_object();

        return $results[0];
    }

}